package com.ruoyi.cm.domain.bo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.cm.domain.CmBsProcess;
import com.ruoyi.cm.domain.CmBsProcessInspectionInfo;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Date;
import java.util.List;
import java.util.Set;

import com.ruoyi.common.core.domain.BaseEntity;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 工序报验业务对象 cm_bs_process_inspection
 *
 * @author zxs
 * @date 2024-10-16
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class CmBsProcessInspectionBo extends BaseEntity {

    /**
     * id
     */
//    @NotNull(message = "id不能为空", groups = { EditGroup.class })
    private Long id;

    /**
     * 工序名称
     */
//    @NotBlank(message = "工序名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String name;

    /**
     * 工序id
     */
//    @NotNull(message = "工序id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long processId;
    //站点id
    private Long zdId;

    private List<CmBsProcess> processList;

    /**
     * 分部分项id
     */
//    @NotNull(message = "分部分项id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long fbfxId;

    /**
     * 期数id
     */
    private Long qsId;

    /**
     * 期数
     */
    private String qs;

    private String fileId;

    private String fileNo;

    private Set<Long> fileIds;

    private Set<Long> fileIdOld;

    /**
     * 审批状态
     */
//    @NotBlank(message = "审批状态不能为空", groups = { AddGroup.class, EditGroup.class })
    private String approveStatus;

    /**
     * 报验时间
     */
//    @NotNull(message = "报验时间不能为空", groups = { AddGroup.class, EditGroup.class })
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date inspectTime;

    /**
     * 排序
     */
//    @NotNull(message = "排序不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer sort;

    /**
     * 文件类型(验收文件、视频、图片、检测表)
     */
//    @NotBlank(message = "文件类型(验收文件、视频、图片、检测表)不能为空", groups = { AddGroup.class, EditGroup.class })
    private String fileType;

    /**
     * 是否启用(1:启用；0:未启用)
     */
//    @NotNull(message = "是否启用(1:启用；0:未启用)不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long enabled;

    /**
     * 备注
     */
//    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String remark;

    private List<CmBsProcessInspectionInfo> infoList;
    //审批意见
    private String approvalOpinions;
    //施工时间
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date constructionTime;

    private Long projectId; // 项目id
    private Long bdId; // 标段id
    private String zdName; // 站点名称

    private String currNodeName; // 当前审批人姓名
    private String procInsId; // 流程实例id
    //是否是全部项目
    private String allProject;

    private List<Long> bdIds;
}
